home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib06.dsk
/
DOS REMOVER.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
3KB
|
65 lines
1 REM *******************************
2 REM * THE DOS REMOVER *
3 REM * BY TONY S. DAHBURA *
4 REM * COPYRIGHT (C) 1981 *
5 REM * BY MICRO-SPARC INC *
6 REM * LINCOLN, MA 01773 *
7 REM *******************************
10 TEXT : HOME : CLEAR :D$ = CHR$(4)
20 REM POKE IN IOB TABLE
30 RESTORE : FOR J = 768 TO 800: READ I: POKE J,I: NEXT J
40 DATA 169,3,160,10,32,217,3,96,0,0,1,96,1,0,0,0,27,3,0,32,0,0,1,0,0,96,1,0,1,239,216,0,0
50 PRINT " DOS REMOVER FOR 16 SECTOR DISKS": PRINT " BY T. DAHBURA"
60 PRINT : PRINT
70 PRINT "THIS PROGRAM WILL REMOVE THE DOS FROM": PRINT "TRACKS $0-$2 AND MAKE THEM AVAILABLE": PRINT "FOR DATA STORAGE.": PRINT
80 POKE 34,8: HOME
90 PRINT "ENTER DISK DRIVE SLOT?";
100 GET SL$:SL = VAL(SL$): IF SL <1 OR SL >7 THEN 100
110 PRINT SL$
120 PRINT : PRINT "ENTER DISK DRIVE NUMBER?";
130 GET SD$:SD = VAL(SD$): IF SD < >1 AND SD < >2 THEN 130
140 HOME : PRINT " SLOT ";SL: PRINT " DRIVE ";SD: POKE 34,11: HOME
160 REM POKE SLOT AND DRIVE
170 POKE 779,SL *16: POKE 793,SL *16: POKE 780,SD: POKE 794,SD
180 REM VOLUME OF 0
190 POKE 781,0: POKE 792,0
200 REM CLEAR ERROR
210 POKE 791,0
220 REM SET TO READ, CODE=1
230 POKE 790,1
240 PRINT : PRINT "INSERT DISK IN DESIGNATED DRIVE": PRINT "AND PRESS <SPACE> TO MODIFY, OR": PRINT "<RETURN> TO EXIT": HTAB 20
250 GET A$: IF A$ < > CHR$(32) AND A$ < > CHR$(13) THEN 250
260 IF A$ = CHR$(13) THEN TEXT : END
270 PRINT
280 HOME : PRINT "READING VTOC, 17,0"
290 POKE 782,17: POKE 783,0: POKE 786,0: POKE 787,32
300 CALL 768
310 GOSUB 520: REM CHECK FOR ERROR
320 REM MARK VTOC LOCATIONS $3C-$43
330 REM AS BEING EMPTY
340 FOR X = 60 TO 67 STEP 4: POKE 8192 +X,255: POKE 8193 +X,255: NEXT X
350 HOME : PRINT "WRITING VTOC"
360 POKE 790,2: CALL 768: GOSUB 520
370 HOME : PRINT "CLEARING TRACKS 1 AND 2"
380 FOR X = 8192 TO 8448: POKE X,0: NEXT X: REM MAKE A PAGE OF 0'S TO STORE WHERE DOS WAS
390 POKE 786,0: POKE 787,32: REM BUFFER
400 POKE 790,2: REM SET TO WRITE, CODE=2
410 FOR X = 1 TO 2
420 FOR Y = 0 TO 15: REM CHANGE TO 12 FOR DOS 3.2
430 POKE 782,X: REM TRACK
440 POKE 783,Y: REM SECTOR
450 CALL 768: REM EXECUTE WRITE
460 GOSUB 520: REM CHECK FOR ERROR
470 NEXT Y: NEXT X
480 HOME : PRINT : PRINT "ANOTHER?";
490 GET A$: IF A$ < >"Y" AND A$ < >"N" THEN 490
500 PRINT A$: IF A$ = "Y" THEN HOME : GOTO 160
510 TEXT : END
520 IF PEEK(791) = 0 THEN RETURN
530 E = PEEK(791)
540 IF E = 16 THEN PRINT : PRINT "DISK IS WRITE PROTECTED"
550 IF E = 32 THEN PRINT : PRINT "VOLUME MISMATCH"
560 IF E = 64 THEN PRINT : PRINT "DRIVE ERROR"
570 IF E = 128 THEN PRINT : PRINT "READ ERROR"
580 IF E < >16 AND E < >32 AND E < >64 AND E < >128 THEN POKE 791,0: RETURN
590 PRINT CHR$(7); CHR$(7): TEXT : END